home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part1 / 3217 < prev    next >
Encoding:
Text File  |  1996-08-06  |  4.0 KB  |  95 lines

  1. Path: chaos.aoc.nrao.edu!usenet
  2. From: Chris Flatters <cflatter@nrao.edu>
  3. Newsgroups: comp.object,comp.databases.object,comp.lang.java,comp.lang.smalltalk,comp.lang.c++,comp.lang.eiffel,comp.lang.objective-c,comp.software-eng
  4. Subject: Re: Data-driven vs. Behavior-driven OO Methods: a Non-Issue?
  5. Date: Mon, 22 Jan 1996 13:59:55 -0700
  6. Organization: NRAO
  7. Message-ID: <3103FACB.32F9@nrao.edu>
  8. References: <4dhop7$3aj@suez.iconcomp.com> <86n37i3ie4.fsf@beowulf.gamp.hacom.nl>
  9. NNTP-Posting-Host: laphroaig.aoc.nrao.edu
  10. Mime-Version: 1.0
  11. Content-Type: text/plain; charset=us-ascii
  12. Content-Transfer-Encoding: 7bit
  13. X-Mailer: Mozilla 2.0b5 (X11; I; SunOS 5.4 sun4c)
  14.  
  15. albert@gamp.hacom.nl wrote:
  16. > Desmond F. D'Souza writes in  <4dhop7$3aj@suez.iconcomp.com>
  17. > > There has been much controversy and discussion about methodologies
  18. > > that are behavior-driven vs. those that are data-driven, with
  19. > > OO-"purists" arguing vehemently against data-driven approaches. In
  20. > > this paper, we suggest that the difference may be smaller than often
  21. > > thought, if we adopt a simple definition of a "type model".
  22. > > Paper available:
  23. > > <A HREF="http://www.iconcomp.com"> On the Web</A>
  24. > I have got the paper, (first one in a series of 1)
  25. > [...]
  26. > I'm sorry to say so, but it IS a nice story about nothing. Some new
  27. > words and myths are introduced, which are solved by renaming them.
  28. > One example is about a "Stack", which IS a relevant one.
  29. > That examples says: do not just say a stack is " ....", be specific.
  30. > I thing we ALL know that. It is like old good programming:
  31. >                 printf() should behave as printf!
  32. > But there is hardly a need to specify that. So is a stack. it should
  33. > behave like a stack! So all counter-examples of the paper that decribe
  34. > a FIFO, ar a list or ... are no stacks!
  35.  
  36. Something is being missed here.  The phrases "printf() should
  37. behave as printf()" and "a stack should behave like a stack"
  38. are deceptively simple.  In reality they are both references 
  39. to fairly detailed and precise specifications. 
  40.  
  41. If we say that printf() should behave as printf() we are actually
  42. saying that printf() should behave as it is described in ANSI/ISO
  43. 9899-1990 (the ANSI/ISO C standard).  The phrase "printf() should
  44. behave as printf()" is actually a shorthand for approximately
  45. two pages of legalistic text that defines (precisely, we hope)
  46. what printf() should do.
  47.  
  48. In the case of a stack we are not referring to an explicit
  49. specification as in the case of printf() but are relying on the
  50. facts that a stack has well defined characteristics in the context
  51. of computing and that people working with software all share
  52. the same idea of what a stack is (at least in its more general
  53. aspects).
  54.  
  55. In analysis and design we rarely have the opportunity to reference
  56. external definitions (either explicit specifications such as
  57. that for printf() or implied specifications as for a stack).  If,
  58. for example, we have a design that refers to a Document type, 
  59. everyone working on the design may not understand the concept of
  60. a document in the same way.  We must therefore define the concept
  61. a document (in the context of our system) with a sufficient degree
  62. of precision that anyone working with our design understands a
  63. document to be the same thing.
  64.  
  65. Of course there is nothing really new here.  A great deal of work
  66. has been done on developing notations and methods for constructing
  67. precise definitions in computing (including formal notations such
  68. as Z and the Eiffel/BON notion of programming by contract).  I
  69. regard it as a good thing that developers of OOA/OOD methodologies
  70. are beginning to pay attention to the need for precise definitions.
  71.  
  72. > [...]
  73. > But it is also true, some more complex "objects" shoul be described
  74. > better. But do not make the mistake to solve this by specifing it by
  75. > other "informal words" That just hides the problem, it doen't solve
  76. > it.
  77.  
  78. The paper clearly uses formal predicate calculus to specify behaviour.
  79. This is far from using "informal words".
  80.  
  81. --
  82.  
  83.     Chris Flatters
  84.     cflatter@nrao.edualbert@gamp.hacom.nl wrote:
  85.